<template>
    <div :id="id" :class="chartLayoutClass">

    </div>
</template>
<script>
import echarts from 'echarts'

export default {
    name: 'DataChart',
    data() {
        return {
            id:'chart-'+Math.random().toString().split('.')[1],
            charts: '',
            opinion: ['直接访问', '邮件营销', '联盟广告', '视频广告', '搜索引擎'],
            opinionData: [
                { value: 335, name: '直接访问' },
                { value: 310, name: '邮件营销' },
                { value: 234, name: '联盟广告' },
                { value: 135, name: '视频广告' },
                { value: 1548, name: '搜索引擎' }
            ]
        }
    },
    props: {
        'chartLayoutClass': {
            type: Array,
            default: ['chart-layout']
        }
    },
    watch: {

    },
    methods: {
        drawPie(id) {
            var self = this;
            this.charts = echarts.init(document.getElementById(self.id));
            this.charts.setOption({
                tooltip: {
                    trigger: 'item',
                    formatter: '{a}<br/>{b}:{c} ({d}%)'
                },
                legend: {
                    orient: 'vertical',
                    x: 'left',
                    data: this.opinion
                },
                series: [
                    {
                        name: '访问来源',
                        type: 'pie',
                        radius: ['50%', '70%'],
                        avoidLabelOverlap: false,
                        label: {
                            normal: {
                                show: false,
                                position: 'center'
                            },
                            emphasis: {
                                show: true,
                                textStyle: {
                                    fontSize: '30',
                                    fontWeight: 'blod'
                                }
                            }
                        },
                        labelLine: {
                            normal: {
                                show: false
                            }
                        },
                        data: this.opinionData
                    }
                ]
            })
        }
    },
    mounted() {
        this.$nextTick(function() {
            this.drawPie('main')
        })
    }
}  
</script>
<style scoped>
.chart-layout {
    height: 350px;
    width: 100%;
    margin: 0 auto;
}
</style>
